import Mock from 'mockjs'

import * as login from './modules/Login'
import * as Router from './modules/Router'
// 1. 开启/关闭[所有模块]拦截, 通过调[openMock参数]设置.
// 2. 开启/关闭[业务模块]拦截, 通过调用fnCreate方法[isOpen参数]设置.
// 3. 开启/关闭[业务模块中某个请求]拦截, 通过函数返回对象中的[isOpen属性]设置.
// let openMock = true
let openMock = true
fnCreate(login, openMock)
fnCreate(Router, openMock)
/**
 * 创建mock模拟数据
 * @param {*} mod 模块
 * @param {*} isOpen 是否开启?
 */
function fnCreate(mod: any, isOpen = true) {
  if (isOpen) {
    for (const key in mod) {
      Mock.mock(new RegExp(mod[key]().url), mod[key]().type, (opts: any) => {
        const params = JSON.parse(opts.body)
        return mod[key]().response(params)
      })
    }
  }
}
